// Copyright 2024 the V8 project authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
//
// Flags: --allow-natives-syntax

"use strict";

class C {}

function foo(x, f) {
    x + x;
    try { f.apply(foo, arguments); } catch (e) {}
}

%PrepareFunctionForOptimization(foo);
foo(0, C);
foo(0, C);
%OptimizeFunctionOnNextCall(foo);
foo(0, C);
